/**
 * 将一个代表 UTC+8 时区的日期时间字符串转换为一个标准的JS Date对象（其内部值为UTC）。
 * @param {string} utc8String - UTC+8 时区的日期时间字符串, e.g., "2025-07-24 08:00:00"。
 * @returns {Date} - 一个标准的Date对象。
 */
export function utc8StringToDate(utc8String: string): Date {
    // 将空格替换为'T'并附加'+08:00'来明确告知Date构造函数这是UTC+8时区。
    // 这是处理时区字符串最直接且标准的方法。
    return new Date(utc8String.replace(' ', 'T') + '+08:00');
}

/**
 * 将日期对象格式化为 "YYYY-MM-DD HH:mm:ss (UTC+8)" 格式的字符串。
 * @param date - 要格式化的 Date 对象。
 * @returns {string} - 格式化后的 UTC+8 时间字符串。
 */
export function formatToUTC8(date: Date): string {
  // 创建一个新的Date对象，其时间值是原始UTC时间加上8小时的偏移
  const utc8Timestamp = date.getTime() + (8 * 60 * 60 * 1000);
  const utc8Date = new Date(utc8Timestamp);

  const year = utc8Date.getUTCFullYear();
  const month = (utc8Date.getUTCMonth() + 1).toString().padStart(2, '0');
  const day = utc8Date.getUTCDate().toString().padStart(2, '0');
  const hours = utc8Date.getUTCHours().toString().padStart(2, '0');
  const minutes = utc8Date.getUTCMinutes().toString().padStart(2, '0');
  const seconds = utc8Date.getUTCSeconds().toString().padStart(2, '0');

  return `${year}-${month}-${day} ${hours}:${minutes}:${seconds} (UTC+8)`;
}
